# -*- coding: utf-8 -*-
"""
@Time    : 2024/9/13 14:55 
@Author  : ZhangShenao 
@File    : person.py 
@Desc    : Person类
"""


class Person:
    """Person类"""

    # 通过__slots__类属性,限定Person对象只能绑定_name、_age和_gender属性
    __slots__ = ["_name", "_age", "_gender"]

    def __init__(self, name: str, age: int):
        """
        构造方法
        :param name: 姓名
        :param age: 年龄
        """

        # 初始化私有属性
        self._name = name
        self._age = age

    @property  # 通过@property装饰器,生成getter方法
    def name(self) -> str:
        """获取姓名"""

        return self._name

    @property  # 通过@property装饰器,生成getter方法
    def age(self) -> int:
        """获取年龄"""

        return self._age

    # @name.setter  # 通过@属性名.setter装饰器,生成setter方法
    # def name(self, name: str) -> None:
    #     """修改姓名"""
    #
    #     self._name = name

    @age.setter  # 通过@属性名.setter装饰器,生成setter方法
    def age(self, age: int) -> None:
        """修改年龄"""

        self._age = age

    def watch(self) -> None:
        """观看"""

        if self._age < 18:
            print(f"{self._name}正在乖乖看书")
        else:
            print(f"{self._name}正在刷剧")
